// //**********************************************************************************************************
// //*    audioI2S-- I2S audiodecoder for ESP32,                                                              *
// //**********************************************************************************************************
// //
// // first release on 11/2018
// // Version 3  , Jul.02/2020
// //
// //
// // THE SOFTWARE IS PROVIDED "AS IS" FOR PRIVATE USE ONLY, IT IS NOT FOR COMMERCIAL USE IN WHOLE OR PART OR CONCEPT.
// // FOR PERSONAL USE IT IS SUPPLIED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// // WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR
// // OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
// //

// #include "Arduino.h"
// #include "WiFiMulti.h"
// #include "Audio.h"
// #include "SPI.h"
// #include "SD.h"
// #include "FS.h"

// // Digital I/O used
// #define SD_CS 3
// #define SPI_MOSI 5
// #define SPI_MISO 6
// #define SPI_SCK 4
// #define I2S_DOUT 7
// #define I2S_BCLK 8
// #define I2S_LRC 9

// Audio audio;
// WiFiMulti wifiMulti;
// String ssid = "Xiaomi_2BEB";
// String password = "Miss1358547929";


// void setup() {
//   // pinMode(SD_CS, OUTPUT);
//   // digitalWrite(SD_CS, HIGH);
//   SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
//   SPI.setFrequency(1000000);
//   Serial.begin(115200);

//   // 初始化SD卡
//   if (!SD.begin(SD_CS)) {
//     Serial.println("SD卡初始化失败！");
//     return;
//   }

//   WiFi.mode(WIFI_STA);
//   wifiMulti.addAP(ssid.c_str(), password.c_str());
//   wifiMulti.run();
//   if (WiFi.status() != WL_CONNECTED) {
//     WiFi.disconnect(true);
//     wifiMulti.run();
//   }
//   audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
//   audio.setVolume(12);  // 0...21

//   // 打开文件（这里的"fwjt.mp3"是文件名，可以根据需要更改）
//   File myFile = SD.open("fwjt.mp3");
//   if (myFile) {
//     audio.connecttoFS(SD, "fwjt.mp3");
//   } else {
//     // 文件打开失败
//     Serial.println("无法打开文件");
//   }

//   // audio.connecttohost("http://www.wdr.de/wdrlive/media/einslive.m3u");
//   // audio.connecttohost("http://somafm.com/wma128/missioncontrol.asx");  //  asx
//   // audio.connecttohost("http://mp3.ffh.de/radioffh/hqlivestream.aac");  //  128k aac
//   // audio.connecttohost("http://mp3.ffh.de/radioffh/hqlivestream.mp3");  //  128k mp3
// }

// void loop() {
//   audio.loop();
//   if (Serial.available()) {  // put streamURL in serial monitor
//     audio.stopSong();
//     String r = Serial.readString();
//     r.trim();
//     if (r.length() > 5) audio.connecttohost(r.c_str());
//     log_i("free heap=%i", ESP.getFreeHeap());
//   }
// }

// // optional
// void audio_info(const char *info) {
//   Serial.print("info        ");
//   Serial.println(info);
// }
// void audio_id3data(const char *info) {  //id3 metadata
//   Serial.print("id3data     ");
//   Serial.println(info);
// }
// void audio_eof_mp3(const char *info) {  //end of file
//   Serial.print("eof_mp3     ");
//   Serial.println(info);
// }
// void audio_showstation(const char *info) {
//   Serial.print("station     ");
//   Serial.println(info);
// }
// void audio_showstreamtitle(const char *info) {
//   Serial.print("streamtitle ");
//   Serial.println(info);
// }
// void audio_bitrate(const char *info) {
//   Serial.print("bitrate     ");
//   Serial.println(info);
// }
// void audio_commercial(const char *info) {  //duration in sec
//   Serial.print("commercial  ");
//   Serial.println(info);
// }
// void audio_icyurl(const char *info) {  //homepage
//   Serial.print("icyurl      ");
//   Serial.println(info);
// }
// void audio_lasthost(const char *info) {  //stream URL played
//   Serial.print("lasthost    ");
//   Serial.println(info);
// }

#include <SPI.h>
#include <SD.h>

#define CS 10

File muFile;

void setup() {
  Serial.begin(9600);
  pinMode(CS, OUTPUT);
  while (!Serial) {
    ;
  }

  Serial.print("正在初始化 SD 卡...");
  if (!SD.begin(CS)) {
    Serial.println("初始化失败");
    return;
  }
  Serial.println("初始化完成");
}

void loop() {
  // 你的逻辑代码
}
